//package com.xzh.springCloud.filter;
//
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
//import org.springframework.cloud.gateway.filter.GlobalFilter;
//import org.springframework.core.Ordered;
//import org.springframework.http.HttpStatus;
//import org.springframework.stereotype.Component;
//import org.springframework.util.MultiValueMap;
//import org.springframework.web.server.ServerWebExchange;
//import reactor.core.publisher.Mono;
//
///**
// * @Author: zhiHong
// * @CreateTime: 2023-08-28 16:01
// * @Description: 自定义全局过滤器
// */
//// GlobalFilter 是实现过滤器功能的核心类, Ordered 用来控制过滤器执行的顺序
//@Component
//@Slf4j
//public class CustomGlobalFilter implements GlobalFilter, Ordered {
//    /**
//     * 核心业务代码
//     * @param exchange the current server exchange
//     * @param chain provides a way to delegate to the next filter
//     */
//    @Override
//    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
//        MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams();
//        // 请求得到 username 参数名中的第一个参数值，等价于 get("username").get(0)
//        String username = queryParams.getFirst("username");
//        // 请求得到 pwd 参数名中的第一个参数值
//        String pwd = queryParams.getFirst("pwd");
//        log.info("username = {}, pwd = {}", username, pwd);
//        if(!("admin".equals(username) && "123456".equals(pwd))) {
//            // 当不满足条件时，返回 406 NOT_ACCEPTABLE 状态响应
//            exchange.getResponse().setStatusCode(HttpStatus.NOT_ACCEPTABLE);
//            return exchange.getResponse().setComplete();
//        }
//        // 验证通过时放行
//        return chain.filter(exchange);
//    }
//
//    /**
//     * 该方法用来控制过滤器执行的顺序，
//     * @return 返回的是数字类型，其中数字越小，优先级越高
//     */
//    @Override
//    public int getOrder() {
//        return 0;
//    }
//}
